package cn.yuanqiao.archive.appManager.mapper;

import cn.yuanqiao.archive.appManager.domain.TenantMdataGroup;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 元数据方案Mapper接口
 * 
 * @author yuanqiao
 * @date 2023-06-06
 */
public interface TenantMdataGroupMapper
{
    /**
     * 查询元数据方案
     * 
     * @param ID 元数据方案主键
     * @return 元数据方案
     */
    public TenantMdataGroup selectTenantMdataGroupByID(@Param("id") Long ID, @Param("tableName") String tableName);

    /**
     * 查询元数据方案列表
     * 
     * @param YqdaMdataGroup 元数据方案
     * @return 元数据方案集合
     */
    public List<TenantMdataGroup> selectTenantMdataGroupList(TenantMdataGroup YqdaMdataGroup);

    List<TenantMdataGroup> selectTenantMdataGroupWithNoUserList(String tableName);

    /**
     * 新增元数据方案
     * 
     * @param YqdaMdataGroup 元数据方案
     * @return 结果
     */
    public int insertTenantMdataGroup(TenantMdataGroup YqdaMdataGroup);

    /**
     * 修改元数据方案
     * 
     * @param YqdaMdataGroup 元数据方案
     * @return 结果
     */
    public int updateTenantMdataGroup(TenantMdataGroup YqdaMdataGroup);

    /**
     * 删除元数据方案
     * 
     * @param ID 元数据方案主键
     * @return 结果
     */
    public int deleteTenantMdataGroupByID(@Param("ID") Long ID, @Param("tableName") String tableName);

    int careateMdataGroupTable(@Param("tableName") String tableName);

    void initMdataGroup(@Param("tableName")String tableName, @Param("categoryIds") String categoryIds);

    TenantMdataGroup getMdataGroupModel(Long ID);

    List<TenantMdataGroup> copyGroupList(TenantMdataGroup YqdaMdataGroup);

    TenantMdataGroup getMdataGroupByCategoryId(@Param("categoryId") Long categoryId, @Param("groupTableName") String groupTableName, @Param("categoryTableName") String categoryTableName);
}
